package com.research.domain.entity;

import java.util.Date;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.common.annotation.Excel;
import com.common.core.domain.BaseEntity;

/**
 * 研究机构-机构人员列对象 biz_research_person
 *
 * @author hst
 * @date 2025-03-24
 */
@Data
@TableName("biz_research_person")
public class ResearchPerson extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    private String id;

    /** 机构ID */
    @Excel(name = "机构ID")
    private String researchUnitId;

    /** 科研人员ID */
    @Excel(name = "科研人员ID")
    private String personId;

    /** 人员类型 */
    @Excel(name = "人员类型")
    private String typeId;

    /** 姓名 */
    @Excel(name = "姓名")
    private String name;

    /** 所属单位 */
    @Excel(name = "所属单位")
    private String unitName;

    /** 性别 */
    @Excel(name = "性别")
    private String sexId;

    /** 出生日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "出生日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date birthday;

    /** 学历 */
    @Excel(name = "学历")
    private String eduLevelId;

    /** 职称 */
    @Excel(name = "职称")
    private String titleId;

    /** 在职情况 */
    @Excel(name = "在职情况")
    private String dutyStatus;

    /** 岗位类型 */
    @Excel(name = "岗位类型")
    private String jobType;

    /** 岗位性质 */
    @Excel(name = "岗位性质")
    private String jobKind;

    /** 是否实验技术人员 */
    @Excel(name = "是否实验技术人员")
    private String isExperTech;

    /** 荣誉称号 */
    @Excel(name = "荣誉称号")
    private String honorTitleId;

    /** 所属资源类型 */
    @Excel(name = "所属资源类型")
    private String resourceType;

    /** 主要学科领域 */
    @Excel(name = "主要学科领域")
    private String subjectField;

    /** 工作内容 */
    @Excel(name = "工作内容")
    private String jobContent;

    /** 参与平台工作情况 */
    @Excel(name = "参与平台工作情况")
    private String prtpUnit;

    /** 入职时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "入职时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date hireDate;

    /** 离职时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "离职时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date termDate;

    private String createUserId;
    private String lastEditUserId;
    private Date createDate;
    private Date lastEditDate;
    private String createUserName;
    private String lastEditUserName;

    /** 流程实例id */
    @Excel(name = "流程实例id")
    private String processInstanceId;

    @TableField(exist = false)
    private String researchNameList;

    public void setId(String id)
    {
        this.id = id;
    }

    public String getId()
    {
        return id;
    }
    public void setResearchUnitId(String researchUnitId)
    {
        this.researchUnitId = researchUnitId;
    }

    public String getResearchUnitId()
    {
        return researchUnitId;
    }
    public void setPersonId(String personId)
    {
        this.personId = personId;
    }

    public String getPersonId()
    {
        return personId;
    }
    public void setTypeId(String typeId)
    {
        this.typeId = typeId;
    }

    public String getTypeId()
    {
        return typeId;
    }
    public void setName(String name)
    {
        this.name = name;
    }

    public String getName()
    {
        return name;
    }
    public void setUnitName(String unitName)
    {
        this.unitName = unitName;
    }

    public String getUnitName()
    {
        return unitName;
    }
    public void setSexId(String sexId)
    {
        this.sexId = sexId;
    }

    public String getSexId()
    {
        return sexId;
    }
    public void setBirthday(Date birthday)
    {
        this.birthday = birthday;
    }

    public Date getBirthday()
    {
        return birthday;
    }
    public void setEduLevelId(String eduLevelId)
    {
        this.eduLevelId = eduLevelId;
    }

    public String getEduLevelId()
    {
        return eduLevelId;
    }
    public void setTitleId(String titleId)
    {
        this.titleId = titleId;
    }

    public String getTitleId()
    {
        return titleId;
    }
    public void setDutyStatus(String dutyStatus)
    {
        this.dutyStatus = dutyStatus;
    }

    public String getDutyStatus()
    {
        return dutyStatus;
    }
    public void setJobType(String jobType)
    {
        this.jobType = jobType;
    }

    public String getJobType()
    {
        return jobType;
    }
    public void setJobKind(String jobKind)
    {
        this.jobKind = jobKind;
    }

    public String getJobKind()
    {
        return jobKind;
    }
    public void setIsExperTech(String isExperTech)
    {
        this.isExperTech = isExperTech;
    }

    public String getIsExperTech()
    {
        return isExperTech;
    }
    public void setHonorTitleId(String honorTitleId)
    {
        this.honorTitleId = honorTitleId;
    }

    public String getHonorTitleId()
    {
        return honorTitleId;
    }
    public void setResourceType(String resourceType)
    {
        this.resourceType = resourceType;
    }

    public String getResourceType()
    {
        return resourceType;
    }
    public void setSubjectField(String subjectField)
    {
        this.subjectField = subjectField;
    }

    public String getSubjectField()
    {
        return subjectField;
    }
    public void setJobContent(String jobContent)
    {
        this.jobContent = jobContent;
    }

    public String getJobContent()
    {
        return jobContent;
    }
    public void setPrtpUnit(String prtpUnit)
    {
        this.prtpUnit = prtpUnit;
    }

    public String getPrtpUnit()
    {
        return prtpUnit;
    }
    public void setHireDate(Date hireDate)
    {
        this.hireDate = hireDate;
    }

    public Date getHireDate()
    {
        return hireDate;
    }
    public void setTermDate(Date termDate)
    {
        this.termDate = termDate;
    }

    public Date getTermDate()
    {
        return termDate;
    }
    public void setCreateUserId(String createUserId)
    {
        this.createUserId = createUserId;
    }

    public String getCreateUserId()
    {
        return createUserId;
    }
    public void setLastEditUserId(String lastEditUserId)
    {
        this.lastEditUserId = lastEditUserId;
    }

    public String getLastEditUserId()
    {
        return lastEditUserId;
    }
    public void setCreateDate(Date createDate)
    {
        this.createDate = createDate;
    }

    public Date getCreateDate()
    {
        return createDate;
    }
    public void setLastEditDate(Date lastEditDate)
    {
        this.lastEditDate = lastEditDate;
    }

    public Date getLastEditDate()
    {
        return lastEditDate;
    }
    public void setCreateUserName(String createUserName)
    {
        this.createUserName = createUserName;
    }

    public String getCreateUserName()
    {
        return createUserName;
    }
    public void setLastEditUserName(String lastEditUserName)
    {
        this.lastEditUserName = lastEditUserName;
    }

    public String getLastEditUserName()
    {
        return lastEditUserName;
    }

    public void setProcessInstanceId(String processInstanceId)
    {
        this.processInstanceId = processInstanceId;
    }

    public String getProcessInstanceId()
    {
        return processInstanceId;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("researchUnitId", getResearchUnitId())
                .append("personId", getPersonId())
                .append("typeId", getTypeId())
                .append("name", getName())
                .append("unitName", getUnitName())
                .append("sexId", getSexId())
                .append("birthday", getBirthday())
                .append("eduLevelId", getEduLevelId())
                .append("titleId", getTitleId())
                .append("dutyStatus", getDutyStatus())
                .append("jobType", getJobType())
                .append("jobKind", getJobKind())
                .append("isExperTech", getIsExperTech())
                .append("honorTitleId", getHonorTitleId())
                .append("resourceType", getResourceType())
                .append("subjectField", getSubjectField())
                .append("jobContent", getJobContent())
                .append("prtpUnit", getPrtpUnit())
                .append("hireDate", getHireDate())
                .append("termDate", getTermDate())
                .append("createUserId", getCreateUserId())
                .append("lastEditUserId", getLastEditUserId())
                .append("createDate", getCreateDate())
                .append("lastEditDate", getLastEditDate())
                .append("createUserName", getCreateUserName())
                .append("lastEditUserName", getLastEditUserName())
                .append("processInstanceId", getProcessInstanceId())
                .toString();
    }
}
